Code can be stored on a variety of different types of memory. Conventional methods mandate that the code, including firmware code, be stored on a system using non-volatile memory such as Read-Only Memory (ROM), Electrically Erasable Programmable Read-Only Memory (EEPROM), or flash memory. ROM is a low cost code storage option but is inflexible and time consuming as silicon re-spinning is required every time changes to the ROM code are desired. As a result, updating firmware code that has been stored on ROM is not possible.
Additionally, code can be stored on a system that has incorporated flash memory either by an embedded flash process, a stacked flash process, or an external flash setup. However, although utilizing flash memory is a flexible code storage option, it adds significant costs to the system.
These issues limit the storage and updating of code. Therefore, there is a strong need for a cost-effective solution that overcomes the above issues by storing code on a type of memory that also allows for efficient updating. The present invention addresses such a need.